Course: IDVI333677_22_2_01

Instructor: ThS. Lê Quang Thái

Group 2 Student ID
Đỗ Hoàng Thịnh 20133122
Nguyễn Minh Tiến 20133093
Huỳnh Nguyễn Tín 20133094
Bùi Lê Hải Triều 20133101

1. Dataset

Sử dụng dữ liệu thu thập trong 7 năm bởi chính phủ Canada (Canada Government official link), được tổng hợp bởi người dùng Kaggle, Debajyoti Podder, và đăng tải trên cộng đồng Kaggle (Kaggle official link).
Dataset trên mô tả chi tiết thông số kỹ thuật cơ bản của các phương tiện như mức tiêu hao nhiên liệu và lượng khí C02 thải ra, mục đích chính của bài nghiên cứu này là tìm hiểu về mối tương quan trên và trực quan hóa dữ liệu.

1.1. Variables

Name Description
Model 4WD/4X4 = Four-wheel drive
AWD = All-wheel drive
FFV = Flexible-fuel vehicle
SWB = Short wheelbase
LWB = Long wheelbase
EWB = Extended wheelbase
Transmission A = Automatic
AM = Automated manual
AS = Automatic with select shift
AV = Continuously variable
M = Manual
3 - 10 = Number of gears
Fuel type X = Regular gasoline
Z = Premium gasoline
D = Diesel
E = Ethanol (E85)
N = Natural gasoline
FuelConsumptionCity City fuel consumption ratings (L/100 km)
FuelConsumptionHwy Highway fuel consumption ratings (L/100km)
FuelConsumptionComb Combined rating (55% city, 45% hwy) (L/100km)
FuelConsumptionCombMpg Combined rating (55% city, 45% hwy) (mpg)
CO2 emissions Tailpipe emissions of CO2 (g/km)

1.2. Preview

## 'data.frame':    7385 obs. of  12 variables:
##  $ Make                  : chr  "ACURA" "ACURA" "ACURA" "ACURA" ...
##  $ Model                 : chr  "ILX" "ILX" "ILX HYBRID" "MDX 4WD" ...
##  $ VehicleClass          : chr  "COMPACT" "COMPACT" "COMPACT" "SUV - SMALL" ...
##  $ EngineSize            : num  2 2.4 1.5 3.5 3.5 3.5 3.5 3.7 3.7 2.4 ...
##  $ Cylinders             : int  4 4 4 6 6 6 6 6 6 4 ...
##  $ Transmission          : chr  "AS5" "M6" "AV7" "AS6" ...
##  $ FuelType              : chr  "Z" "Z" "Z" "Z" ...
##  $ FuelConsumptionCity   : num  9.9 11.2 6 12.7 12.1 11.9 11.8 12.8 13.4 10.6 ...
##  $ FuelConsumptionHwy    : num  6.7 7.7 5.8 9.1 8.7 7.7 8.1 9 9.5 7.5 ...
##  $ FuelConsumptionComb   : num  8.5 9.6 5.9 11.1 10.6 10 10.1 11.1 11.6 9.2 ...
##  $ FuelConsumptionCombMpg: int  33 29 48 25 27 28 28 25 24 31 ...
##  $ CO2Emissions          : int  196 221 136 255 244 230 232 255 267 212 ...

Ta có thể thấy dataset có 7385 quan sát và 12 biến và các kiểu biến như sau:
- Kiểu chuỗi (categorical): $Make, $Model, $VehicleClass, $Transmission, $FuelType
- Kiểu thập phân (numerical): $EngineSize, $FuelConsumptionCity, $FuelConsumptionHwy, $FuelConsumptionComb
- Kiểu số nguyên (numerical): $Cylinders, $FuelConsumptionCombMpg, $CO2Emissions

##    Make      Model VehicleClass EngineSize Cylinders Transmission FuelType
## 1 ACURA        ILX      COMPACT        2.0         4          AS5        Z
## 2 ACURA        ILX      COMPACT        2.4         4           M6        Z
## 3 ACURA ILX HYBRID      COMPACT        1.5         4          AV7        Z
## 4 ACURA    MDX 4WD  SUV - SMALL        3.5         6          AS6        Z
## 5 ACURA    RDX AWD  SUV - SMALL        3.5         6          AS6        Z
## 6 ACURA        RLX     MID-SIZE        3.5         6          AS6        Z
##   FuelConsumptionCity FuelConsumptionHwy FuelConsumptionComb
## 1                 9.9                6.7                 8.5
## 2                11.2                7.7                 9.6
## 3                 6.0                5.8                 5.9
## 4                12.7                9.1                11.1
## 5                12.1                8.7                10.6
## 6                11.9                7.7                10.0
##   FuelConsumptionCombMpg CO2Emissions
## 1                     33          196
## 2                     29          221
## 3                     48          136
## 4                     25          255
## 5                     27          244
## 6                     28          230
##       Make       Model   VehicleClass EngineSize Cylinders Transmission
## 7380 VOLVO XC40 T4 AWD    SUV - SMALL          2         4          AS8
## 7381 VOLVO XC40 T5 AWD    SUV - SMALL          2         4          AS8
## 7382 VOLVO XC60 T5 AWD    SUV - SMALL          2         4          AS8
## 7383 VOLVO XC60 T6 AWD    SUV - SMALL          2         4          AS8
## 7384 VOLVO XC90 T5 AWD SUV - STANDARD          2         4          AS8
## 7385 VOLVO XC90 T6 AWD SUV - STANDARD          2         4          AS8
##      FuelType FuelConsumptionCity FuelConsumptionHwy FuelConsumptionComb
## 7380        X                10.2                7.5                 9.0
## 7381        Z                10.7                7.7                 9.4
## 7382        Z                11.2                8.3                 9.9
## 7383        Z                11.7                8.6                10.3
## 7384        Z                11.2                8.3                 9.9
## 7385        Z                12.2                8.7                10.7
##      FuelConsumptionCombMpg CO2Emissions
## 7380                     31          210
## 7381                     30          219
## 7382                     29          232
## 7383                     27          240
## 7384                     29          232
## 7385                     26          248
##        Make             Model            VehicleClass EngineSize Cylinders
## 1 CHEVROLET      Suburban 4WD          SUV - STANDARD        6.2         8
## 2 CHEVROLET         SILVERADO PICKUP TRUCK - STANDARD        5.3         8
## 3      FIAT 500 ABARTH CABRIO             MINICOMPACT        1.4         4
## 4  CADILLAC           XT5 AWD             SUV - SMALL        3.6         6
## 5 CHEVROLET      CITY EXPRESS SPECIAL PURPOSE VEHICLE        2.0         4
## 6 CHEVROLET SILVERADO 4WD FFV PICKUP TRUCK - STANDARD        5.3         8
##   Transmission FuelType FuelConsumptionCity FuelConsumptionHwy
## 1          A10        Z                17.1               11.3
## 2           A6        X                14.6               10.3
## 3           A6        X                 9.7                7.4
## 4          AS8        X                12.8                9.3
## 5           AV        X                 9.7                9.0
## 6           A6        X                15.0               10.7
##   FuelConsumptionComb FuelConsumptionCombMpg CO2Emissions
## 1                14.5                     19          340
## 2                12.7                     22          298
## 3                 8.7                     32          202
## 4                11.2                     25          263
## 5                 9.4                     30          216
## 6                13.1                     22          307

2. Agenda

2.1. Asking questions

Dựa vào dataset, ta có thể thấy mức tiêu hao nhiên liệu và lượng CO2 thải ra từ phương tiện phụ thuộc vào lẫn nhau hoặc vào nhiều yếu tố khác nhau. Nhóm đã đưa ra những giả thiết sau:

Theory 1:

Các phương tiện thuộc kiểu SUV với trọng lượng lớn hơn sẽ tiêu hao nhiên liệu hơn, dẫn đến lượng CO2 thải ra nhiều hơn so với các phương tiện khác.
X: VehicleClass
Y: CO2Emissions | FuelConsumptionComb

Theory 2:

Loại nhiên liệu đóng vai trờ tác động trực tiếp đến mức tiêu hao nhiên liệu và lượng CO2 thải ra, vì mỗi loại nhiên liệu có loại phản ứng đốt cháy khác nhau.
X: FuelType
Y: CO2Emissions | FuelConsumptionComb

Theory 3:

Động cơ càng lớn sẽ càng tiêu hao nhiên liệu hơn vì các mẫu siêu xe có phân khối rất lớn.
X: EngineSize | Cylinders
Y: CO2Emissions | FuelConsumptionComb

Tổng quan, các biến kết quả là:
- FuelConsumptionCity
- FuelConsumptionHwy
- FuelConsumptionComb
- FuelConsumptionCombMpg
- CO2Emissions
Và các biến giải thích (đầu vào) là:
- Make
- Model
- VehicleClass
- EngineSize
- Cylinders
- Transmission
- TransmissionType
- FuelType

2.2. Our approach

Nhóm sẽ cung cấp một ánh nhìn tổng quan và sâu sắc hơn về dataset thông qua quá trình trực quan hóa, phân tích dataset để kiểm tra giả thiết, hoặc sử dụng phương pháp học máy để tìm ra các xu hướng, khuôn mẫu, và dự đoán các biến kết quả nếu có thể.

Một phương pháp nhóm tin rằng sẽ là một công cụ quan trọng là đặt câu hỏi và tìm câu trả lời sử dụng các kỹ thuật trực quan hóa và học máy đã được học. Công đoạn này có thể như sau:
- Đặt giả thiết
- Biến đổi dữ liệu, trực quan hóa, hoặc mô hình hóa dataset trong phạm vi giả thiết
- Kết quả có thể không như mong đợi, nhưng có thể xác thực và đảm bảo tính đúng đắn của kết luận

Ngoài ra, nhóm dự kiến sẽ giữa mức tiêu hao nhiên liệu và lượng CO2 thải ra của các nhóm so sánh sau:
- Các phương tiện thuộc lớp SUV, TRUCK với các lớp còn lại
- Các phương tiện có kiểu truyền động tự động và số sàn
- Các phương tiện có khối động cơ lớn hơn trung bình và số còn lại
- Các loại nhiên liệu khác nhau trên các phương tiện cùng lớp, cùng phân khối, hoặc cùng kiểu truyền động

3. Exploratory Data Analysis

3.1. Understanding the dataset

Để có thể hiểu rõ hơn về các biến kiểu dữ liệu phân loại (categorical data), ta sẽ đếm số lần xuất hiện các giá trị unique của từng biến trong quan sát.
Bắt đầu với hãng sản xuất xe.

Có 42 nhà sản xuất xe tại Canada. Với FORD, CHEVROLET, BMW, MERCEDES-BENZ, và PORSCHE lần lượt là 5 nhà sản xuất phổ biến nhất tại Canada.
Ta hãy xem 10 mẫu xe của hãng FORD được sử dụng nhiều nhất.

Ta cũng sẽ xem 20 mẫu xe được sử dụng rộng rãi nhất tại Canada cùng với hãng xe sản xuất mẫu xe đó.

## # A tibble: 20 × 3
##    Model         Make           n
##    <chr>         <chr>      <int>
##  1 F-150 FFV     FORD          32
##  2 F-150 FFV 4X4 FORD          32
##  3 MUSTANG       FORD          27
##  4 FOCUS FFV     FORD          24
##  5 F-150         FORD          20
##  6 F-150 4X4     FORD          20
##  7 SONIC         CHEVROLET     20
##  8 SONIC 5       CHEVROLET     20
##  9 ACCORD        HONDA         19
## 10 ATS           CADILLAC      19
## 11 COMPASS       JEEP          19
## 12 JETTA         VOLKSWAGEN    19
## 13 TACOMA 4WD    TOYOTA        19
## 14 CAMARO        CHEVROLET     18
## 15 COROLLA       TOYOTA        18
## 16 FORTE 5       KIA           18
## 17 SIERRA        GMC           18
## 18 SIERRA 4WD    GMC           18
## 19 SILVERADO     CHEVROLET     18
## 20 SILVERADO 4WD CHEVROLET     18

Đáng chú ý, ta có thể thấy 6 mẫu xe xuất hiện nhiều nhất đều thuộc hãng FORD, ủng hộ phát hiện FORD là hãng xe phổ biến nhất tại Canada.
Tiếp theo là phân lớp xe.

Lớp xe SUV - SMALL được sử dụng nhiều nhất tại Canada, theo sau là lớp MID-SIZE và COMPACT.
Tiếp theo là loại truyền động.

##    Transmission    n
## 1           AS6 1324
## 2           AS8 1211
## 3            M6  901
## 4            A6  789
## 5            A8  490
## 6           AM7  445
## 7            A9  339
## 8           AS7  319
## 9            AV  295
## 10           M5  193
## 11         AS10  168
## 12          AM6  132
## 13          AV7  118
## 14          AV6  113
## 15           M7   91
## 16           A5   84
## 17          AS9   77
## 18           A4   65
## 19          AM8   62
## 20           A7   53
## 21          AV8   39
## 22          A10   31
## 23          AS5   26
## 24         AV10   11
## 25          AM5    4
## 26          AM9    3
## 27          AS4    2

Các loại truyền động có sẵn trong dataset không chỉ đơn thuần là số sàn (Manual - M) hoặc tự động (Automatic - A), nên ta sẽ tạo một biến TransmissionType để dễ xác định và phân loại hai loại trên từ cột Transmission.
Từ đó, đếm số lần xuất hiện của hai giá trị “A” và “M”.

##   TransmissionType    n
## 1                A 6200
## 2                M 1185

Mẫu xe có kiểu truyền động tự động (Automatic - A) chiếm ưu thế hơn hẳn so với số sàn (Manual - M).
Tiếp theo là loại nhiên liệu.

##   FuelType    n
## 1        X 3637
## 2        Z 3202
## 3        E  370
## 4        D  175
## 5        N    1

Các loại nhiên liệu có sẵn trong dataset là ký hiệu, để đồ thị user-friendly hơn thì ta sẽ thay đổi tên cho các loại nhiên liệu này dựa trên đặc tả về cột FuelType ở mục 1.1.
Từ đó, đếm số lần xuất hiện của từng giá trị unique trong cột.

Loại nhiên liệu Regular Gasoline và Premium Gasoline là hai loại nhiên liệu phổ biến nhất được dùng cho các phương tiện tại Canada, với số quan sát cách biệt lớn hơn đáng kể so với các loại nhiên liệu khác.

3.2. Identifying correlated variables

Nhóm dự đoán rằng mức tiêu hao nhiên liệu và lượng CO2 thải ra của các phương tiện tại Canada có thể phụ thuộc vào nhiều biến số như loại nhiên liệu sử dụng, phân lớp xe, kích cỡ động cơ,…
Mục này sẽ tập trung vào việc phân tích và xác định những khuôn mẫu, xu hướng, hoặc tương quan giữa các biến trong dataset.
Bắt đầu với các biến kiểu số.

Dựa vào ma trận tương quan và heatmap trên, ta có thể đưa ra một số kết luận sơ bộ:
Khi tăng kích cỡ động cơ (EngineSize):
→ Số lượng xi lanh tăng
→ Mức tiêu hao nhiên liệu đường hỗn hợp (FuelConsumptionComb) tăng
→ Lượng CO2 thải ra cũng tăng
Và các biến này đều tác động tuyến tính lẫn nhau.

Quan trọng hơn hết, ta cũng có thể đưa ra kết luận rằng nếu một phương tiện có mức tiêu hao nhiên liệu cao, lượng CO2 thải ra cũng tăng tuyến tính với mức độ tương quan 0.918.

3.3. Hypothesis testing
Theory 1:

Các phương tiện thuộc kiểu SUV với trọng lượng lớn hơn sẽ tiêu hao nhiên liệu hơn, dẫn đến lượng CO2 thải ra nhiều hơn so với các phương tiện khác.
X: VehicleClass
Y: CO2Emissions | FuelConsumptionComb

Bắt đầu với việc xem mối tương quan giữa mức tiêu hao nhiên liệu và lượng CO2 thải ra của từng phân lớp xe.

Để dễ so sánh hơn, ta sẽ vẽ biểu đồ điểm và phân biệt các Vehicle Class theo màu.

Do có sự tương quan mạnh, ta có thể bước đầu tin rằng giả thiết có ý nghĩa để tiếp tục.

Mặc dù đồ thị phân bố không đưa ra kết quả trực quan thật sự rõ, ta vẫn có thể nhận thấy hai phân lớp VAN - CARGO và VAN - PASSENGER có mức tiêu hao cao nhất do có phân bố lệch trái.
Tiếp theo, ta sẽ so sánh mức nhiên liệu tiêu hao trung bình theo phân lớp xe.

STATION WAGON - SMALL, COMPACT, và MID-SIZE là ba phân lớp xe có mức tiêu hao nhiên liệu trung bình thấp nhất.
Theo như dự đoán, mẫu xe SUV có trọng lượng lớn cần sử dụng nhiên liệu nhiều hơn nên trên trung bình có lượng CO2 thải ra cao hơn các phương tiện nhỏ gọn. Giả thiết 1 được nhóm nhận diện đúng.

Theory 2:

Loại nhiên liệu đóng vai trờ tác động trực tiếp đến mức tiêu hao nhiên liệu và lượng CO2 thải ra, vì mỗi loại nhiên liệu có loại phản ứng đốt cháy khác nhau.
X: FuelType
Y: CO2Emissions | FuelConsumptionComb

Các điểm có độ dốc rõ rệt giữa mức tiêu hao nhiên liệu và lượng CO2 thải ra. Ta có thể nói rằng một phương tiện sử dụng nhiên liệu càng nhiều thì lượng khí thải càng tăng.
Ngoài ra, Ethanol là loại nhiên liệu có độ dốc thấp nhất, cho thấy lượng CO2 thải ra ít hơn khi so sánh hai phương tiện có cùng mức tiêu hao nhiên liệu nhưng sử dụng loại nhiên liệu khác nhau. Ngược lại, Diesel là loại nhiên liệu có độ dốc cao nhất.

Đồ thị phân bố cho thấy phương tiện sử dụng loại nhiên liệu Regular Gasoline có lượng CO2 thải ra thấp hơn so với các phương tiện sử dụng loại nhiên liệu khác.
Ta sẽ so sánh mức tiêu hao nhiên liệu trung bình theo loại nhiên liệu.

Phương tiện sử dụng loại nhiên liệu Ethanol có lượng CO2 thải ra cao nhất. Đồng thời, dựa vào mối tương quan giữa lượng CO2 thải ra và mức tiêu hao nhiên liệu, phương tiện sử dụng Ethanol có mức tiêu hao nhiên liệu cũng nhiều hơn.
Ngoài ra, việc sử dụng nhiên liệu Premium Gasoline cũng cho thấy lượng CO2 thải ra và mức tiêu hao nhiên liệu cao hơn so với Diesel và Regular Gasoline.
Vì vậy, ta không thể bác bỏ giả thiết 2 đã đề ra, lượng CO2 thải ra và mức tiêu hao nhiên liệu có thể bị tác động bởi loại nhiên liệu phương tiện sử dụng, sự khác biệt có thể thấy rõ ràng nhất là khi so sánh giữa Ethanol và các loại còn lại.

4. Machine Learning

Từ các quan sát trên, ta sẽ bắt đầu dựng mô hình dự đoán dựa trên các phương pháp phổ biến, kiểm chứng mức độ chính xác của mô hình, và tìm ra biến có ý nghĩa nhất.

4.1. Predicting CO2 emissions

Biến kết quả:
- CO2Emissions
Biến giải thích:
- Make
- Model
- VehicleClass
- EngineSize
- Cylinders
- Transmission
- TransmissionType
- FuelType
- FuelConsumptionHwy
- FuelConsumptionCity
- FuelConsumptionComb
- FuelConsumptionCombMpg

Đầu tiên, dựng mô hình train và test, mô hình train sẽ sử dụng 75% quan sát bên trong dataset.

## Ranger result
## 
## Call:
##  ranger(CO2Emissions ~ ., co2_emissions_train, num.trees = 5000,      respect.unordered.factors = "order", seed = set.seed(1608)) 
## 
## Type:                             Regression 
## Number of trees:                  5000 
## Sample size:                      5534 
## Number of independent variables:  12 
## Mtry:                             3 
## Target node size:                 5 
## Variable importance mode:         none 
## Splitrule:                        variance 
## OOB prediction error (MSE):       10.55433 
## R squared (OOB):                  0.9969225

Lưu ý: mô hình dự đoán hiện tại có kiểu hồi quy vì hàm ranger tự động chọn dựa vào kiểu biến kết quả là kiểu số hay phân loại, trong trường hợp này, biến kết quả có kiểu số nên mô hình dự đoán có kiểu hồi quy.

Sau khi dựng mô hình dự đoán sử dụng Random Forest có 5000 decision trees sử dụng 5504 quan sát (75%) từ dataset, ta có thể thử dự đoán trên mô hình test và tính toán thông số RMSE của kết quả dự đoán được tạo.

##       rmse
## 1 8.300852

Để kiểm tra mức độ chính xác của mô hình dự đoán, ta sẽ sử dụng đồ thị scatter plot để so sánh giữa lượng CO2 thải ra thực và lượng CO2 thải ra dự đoán.

Tiếp theo là xác định các biến có ý nghĩa nhất trong việc dự đoán lượng CO2 thải ra.

Dựa vào đồ thị trên, mức tiêu hao năng lượng có ảnh hưởng lớn nhất đến kết quả dự đoán lượng CO2 thải ra của mô hình dự đoán Random Forest, trong khi mẫu xe có ảnh hưởng thấp nhất. Điều này cũng dễ hiểu, khi một phương tiện có mức tiêu hao nhiên liệu cao, lượng khí CO2 thải ra môi trường cũng sẽ tăng.
Đáng lưu ý rằng kích cỡ động cơ (EngineSize) và số xi lanh (Cylinders) cũng là biến có ảnh hưởng cao không liên quan đến mức tiêu hao nhiên liệu.

4.2. Predicting fuel consumption

Tiếp theo là dự đoán mức tiêu hao nhiên liệu.

Biến kết quả:
- FuelConsumptionComb
Biến giải thích:
- Make
- Model
- VehicleClass
- EngineSize
- Cylinders
- Transmission
- TransmissionType
- FuelType

Đầu tiên, dựng mô hình train và test, mô hình train sẽ sử dụng 75% quan sát bên trong dataset.

## Ranger result
## 
## Call:
##  ranger(FuelConsumptionComb ~ Make + Model + VehicleClass + EngineSize +      Cylinders + Transmission + TransmissionType + FuelType, fuel_comb_train,      num.trees = 5000, respect.unordered.factors = "order", seed = seed) 
## 
## Type:                             Regression 
## Number of trees:                  5000 
## Sample size:                      5502 
## Number of independent variables:  8 
## Mtry:                             2 
## Target node size:                 5 
## Variable importance mode:         none 
## Splitrule:                        variance 
## OOB prediction error (MSE):       0.1576501 
## R squared (OOB):                  0.9814102

Lưu ý: mô hình dự đoán hiện tại có kiểu hồi quy vì hàm ranger tự động thực hiện dựa vào kiểu kết quả dự đoán là kiểu số hoặc phân loại, trong trường hợp này, biến kết quả có kiểu số nên mô hình dự đoán có kiểu hồi quy.

Sau khi dựng xong mô hình dự đoán sử dụng Random Forest có 5000 decision trees, ta có thể thử dự đoán trên mẫu test và tính toán thông số RMSE của kết quả dự đoán được tạo.

##      rmse
## 1 1.25252

Để kiểm tra mức độ chính xác của mô hình dự đoán, ta sẽ sử dụng đồ thị scatter plot để so sánh giữa mức tiêu hao nhiên liệu thực và mức tiêu hao nhiên liệu được dự đoán.

Cuối cùng, ta có thể xem các biến có ý nghĩa nhất trong việc dự đoán mức tiêu hao nhiên liệu của các phương tiện.

Dựa vào đồ thị trên, kích cỡ động cơ có ảnh hưởng lớn nhất trong mô hình dự đoán mức tiêu hao năng lượng của các phương tiện.

References

Muktapathak. (2021, November 11). Prediction using random forest model. Kaggle. Retrieved December 20, 2022, from https://www.kaggle.com/code/muktapathak/prediction-using-random-forest-model
Kevinkwan. (2022, April 23). Vehicle Emissions Eda. Kaggle. Retrieved December 20, 2022, from https://www.kaggle.com/code/kevinkwan/vehicle-emissions-eda